<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<model userDefinedModelVersionIdentifier="" type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="3401" systemVersion="13C64" minimumToolsVersion="Automatic" macOSVersion="Automatic" iOSVersion="Automatic">
    <entity name="Arranger" representedClassName="Arranger" syncable="YES">
        <attribute name="name" optional="YES" attributeType="String" syncable="YES"/>
        <relationship name="arrangerOf" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="Score" inverseName="arrangers" inverseEntity="Score" syncable="YES"/>
    </entity>
    <entity name="Bundle" representedClassName="Bundle" syncable="YES">
        <relationship name="rooms" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="Room" inverseName="bundle" inverseEntity="Room" syncable="YES"/>
        <relationship name="score" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="Score" inverseName="bundles" inverseEntity="Score" syncable="YES"/>
        <relationship name="user" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="User" inverseName="bundles" inverseEntity="User" syncable="YES"/>
    </entity>
    <entity name="Composer" representedClassName="Composer" syncable="YES">
        <attribute name="name" optional="YES" attributeType="String" syncable="YES"/>
        <relationship name="composerOf" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="Score" inverseName="composers" inverseEntity="Score" syncable="YES"/>
    </entity>
    <entity name="Layer" representedClassName="Layer" syncable="YES">
        <attribute name="isPublic" optional="YES" attributeType="Boolean" defaultValueString="NO" syncable="YES"/>
        <attribute name="name" optional="YES" attributeType="String" syncable="YES"/>
        <attribute name="uuid" optional="YES" attributeType="String" syncable="YES"/>
        <relationship name="remarks" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="Remark" inverseName="layer" inverseEntity="Remark" syncable="YES"/>
        <relationship name="session" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="Session" inverseName="layers" inverseEntity="Session" syncable="YES"/>
    </entity>
    <entity name="Lyricist" representedClassName="Lyricist" syncable="YES">
        <attribute name="name" optional="YES" attributeType="String" syncable="YES"/>
        <relationship name="lyricistOf" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="Score" inverseName="lyricists" inverseEntity="Score" syncable="YES"/>
    </entity>
    <entity name="Member" representedClassName="Member" syncable="YES">
        <attribute name="name" optional="YES" attributeType="String" syncable="YES"/>
        <attribute name="token" optional="YES" attributeType="String" syncable="YES"/>
        <relationship name="participations" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="Participation" inverseName="member" inverseEntity="Participation" syncable="YES"/>
        <relationship name="rooms" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="Membership" inverseName="member" inverseEntity="Membership" syncable="YES"/>
    </entity>
    <entity name="Membership" representedClassName="Membership" syncable="YES">
        <attribute name="role" optional="YES" attributeType="Integer 16" defaultValueString="0" syncable="YES"/>
        <attribute name="status" optional="YES" attributeType="Integer 16" defaultValueString="0" syncable="YES"/>
        <relationship name="member" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="Member" inverseName="rooms" inverseEntity="Member" syncable="YES"/>
        <relationship name="room" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="Room" inverseName="members" inverseEntity="Room" syncable="YES"/>
    </entity>
    <entity name="Participation" representedClassName="Participation" syncable="YES">
        <attribute name="endDate" optional="YES" attributeType="Date" syncable="YES"/>
        <attribute name="startDate" optional="YES" attributeType="Date" syncable="YES"/>
        <relationship name="member" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="Member" inverseName="participations" inverseEntity="Member" syncable="YES"/>
        <relationship name="remarks" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="Remark" inverseName="participation" inverseEntity="Remark" syncable="YES"/>
        <relationship name="session" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="Session" inverseName="participations" inverseEntity="Session" syncable="YES"/>
    </entity>
    <entity name="Remark" representedClassName="Remark" syncable="YES">
        <attribute name="data" optional="YES" attributeType="Binary" syncable="YES"/>
        <attribute name="page" optional="YES" attributeType="Integer 16" defaultValueString="0" syncable="YES"/>
        <attribute name="uuid" optional="YES" attributeType="String" syncable="YES"/>
        <relationship name="layer" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="Layer" inverseName="remarks" inverseEntity="Layer" syncable="YES"/>
        <relationship name="participation" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="Participation" inverseName="remarks" inverseEntity="Participation" syncable="YES"/>
    </entity>
    <entity name="Room" representedClassName="Room" syncable="YES">
        <attribute name="name" optional="YES" attributeType="String" syncable="YES"/>
        <attribute name="passkey" optional="YES" attributeType="String" syncable="YES"/>
        <attribute name="uuid" optional="YES" attributeType="String" syncable="YES"/>
        <relationship name="bundle" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="Bundle" inverseName="rooms" inverseEntity="Bundle" syncable="YES"/>
        <relationship name="members" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="Membership" inverseName="room" inverseEntity="Membership" syncable="YES"/>
        <relationship name="sessions" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="Session" inverseName="room" inverseEntity="Session" syncable="YES"/>
    </entity>
    <entity name="Score" representedClassName="Score" syncable="YES">
        <attribute name="subtitle" optional="YES" attributeType="String" syncable="YES"/>
        <attribute name="title" optional="YES" attributeType="String" syncable="YES"/>
        <attribute name="token" optional="YES" attributeType="String" syncable="YES"/>
        <relationship name="arrangers" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="Arranger" inverseName="arrangerOf" inverseEntity="Arranger" syncable="YES"/>
        <relationship name="bundles" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="Bundle" inverseName="score" inverseEntity="Bundle" syncable="YES"/>
        <relationship name="composers" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="Composer" inverseName="composerOf" inverseEntity="Composer" syncable="YES"/>
        <relationship name="lyricists" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="Lyricist" inverseName="lyricistOf" inverseEntity="Lyricist" syncable="YES"/>
    </entity>
    <entity name="Session" representedClassName="Session" syncable="YES">
        <attribute name="endDate" optional="YES" attributeType="Date" syncable="YES"/>
        <attribute name="isPublished" optional="YES" attributeType="Boolean" syncable="YES"/>
        <attribute name="startDate" optional="YES" attributeType="Date" syncable="YES"/>
        <attribute name="uuid" optional="YES" attributeType="String" syncable="YES"/>
        <relationship name="layers" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="Layer" inverseName="session" inverseEntity="Layer" syncable="YES"/>
        <relationship name="participations" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="Participation" inverseName="session" inverseEntity="Participation" syncable="YES"/>
        <relationship name="room" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="Room" inverseName="sessions" inverseEntity="Room" syncable="YES"/>
    </entity>
    <entity name="User" representedClassName="User" syncable="YES">
        <attribute name="email" optional="YES" attributeType="String" syncable="YES"/>
        <attribute name="isActive" optional="YES" attributeType="Boolean" syncable="YES"/>
        <attribute name="name" optional="YES" attributeType="String" syncable="YES"/>
        <attribute name="password" optional="YES" attributeType="String" syncable="YES"/>
        <attribute name="token" optional="YES" attributeType="String" syncable="YES"/>
        <relationship name="bundles" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="Bundle" inverseName="user" inverseEntity="Bundle" syncable="YES"/>
    </entity>
    <elements>
        <element name="Arranger" positionX="322" positionY="204" width="128" height="75"/>
        <element name="Bundle" positionX="-272" positionY="-27" width="128" height="90"/>
        <element name="Composer" positionX="441" positionY="-30" width="128" height="75"/>
        <element name="Layer" positionX="-234" positionY="150" width="128" height="120"/>
        <element name="Lyricist" positionX="160" positionY="231" width="128" height="75"/>
        <element name="Member" positionX="-639" positionY="39" width="128" height="103"/>
        <element name="Membership" positionX="-416" positionY="-153" width="128" height="105"/>
        <element name="Participation" positionX="-668" positionY="306" width="128" height="120"/>
        <element name="Remark" positionX="-441" positionY="177" width="128" height="118"/>
        <element name="Room" positionX="-216" positionY="-243" width="128" height="135"/>
        <element name="Score" positionX="214" positionY="-18" width="128" height="150"/>
        <element name="Session" positionX="-11" positionY="309" width="128" height="148"/>
        <element name="User" positionX="243" positionY="-243" width="128" height="133"/>
    </elements>
</model>